//package com.ruyuan.eshop.construction.dao;
//
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.baomidou.mybatisplus.core.toolkit.Wrappers;
//import com.ruyuan.eshop.common.dao.BaseDAO;
//import com.ruyuan.eshop.construction.builder.FullProductData;
//import com.ruyuan.eshop.construction.domain.entity.*;
//import com.ruyuan.eshop.common.enums.ProductResultEnum;
//import com.ruyuan.eshop.construction.mapper.ItemInfoMapper;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Repository;
//
//import javax.annotation.Resource;
//import java.util.List;
//import java.util.Set;
//
///**
// *
// *
// * @author zhonghuashishan
// */
//@Repository
//@Slf4j
//public class ItemInfoDAO  extends BaseDAO<ItemInfoMapper, ItemInfoDO> {
//
//    @Resource
//    private ItemInfoMapper itemInfoMapper;
//
//    @Autowired
//    private ItemInfoDAO itemInfoDAO;
//
//    @Autowired
//    private SkuInfoDAO skuInfoDAO;
//
//    @Autowired
//    private SkuBarCodeRelationDAO skuBarCodeRelationDAO;
//
//    @Autowired
//    private CspuSkuRelationDAO cspuSkuRelationDAO;
//
//    @Autowired
//    private AttributeExtendDAO attributeExtendDAO;
//
//    @Autowired
//    private QualityControlDAO qualityControlDAO;
//
//    @Autowired
//    private ItemShelfLifeDAO itemShelfLifeDAO;
//
//    @Autowired
//    private ItemVideoImgDAO itemVideoImgDAO;
//    /**
//     * 根据itemId查询item信息
//     *
//     * @param itemId
//     * @return com.ruyuan.eshop.construction.domain.dto.ItemInfoDTO
//     * @author zhonghuashishan
//     */
//    public ItemInfoDO selectByItemId(String itemId) {
//        log.info("itemId={}", itemId);
//        return itemInfoMapper.selectByItemId(itemId);
//    }
//
//    /**
//     * 查询item的基本信息，存储信息，品控信息，图文信息
//     *
//     * @param itemIdSet
//     * @param productResultEnums
//     * @return java.util.List<com.ruyuan.eshop.construction.domain.dto.ItemDetailDTO>
//     * @author zhonghuashishan
//     */
//    public List<ItemDetailDO> selectDetailByItemId(Set<String> itemIdSet, List<ProductResultEnum> productResultEnums) {
//        log.info("itemIdSet={}, productResultEnums={}", itemIdSet, productResultEnums);
//        return itemInfoMapper.selectItemDetailList(itemIdSet, productResultEnums);
//    }
//
//    /**
//     * 根据itemId查询item的销售信息
//     *
//     * @param itemId
//     * @return com.ruyuan.eshop.construction.domain.dto.ItemSaleDTO
//     * @author zhonghuashishan
//     */
//    public ItemSaleDO selectItemSaleByItemId(String itemId) {
//        log.info("itemId={}", itemId);
//        return new ItemSaleDO(itemInfoMapper.selectItemSaleByItemId(itemId));
//    }
//
//    /**
//     * 根据itemId查询item的推广信息
//     *
//     * @param itemId
//     * @return com.ruyuan.eshop.construction.domain.dto.ItemPopularizeDTO
//     * @author zhonghuashishan
//     */
//    public ItemPopularizeDO selectItemPopularizeByItemId(String itemId) {
//        log.info("itemId={}", itemId);
//        return itemInfoMapper.selectItemPopularizeByItemId(itemId);
//    }
//
//    /**
//     *  保存商品的明细信息
//     * @param fullProductData
//     */
//    public void saveItemInfo(FullProductData fullProductData){
//
//    }
//
//    /**
//     * 更新商品明细信息
//     * @param fullProductData
//     */
//    public void updateItemInfo(FullProductData fullProductData){
//        // 更新
//        itemInfoDAO.updateById(fullProductData.getItemInfoDO());
//        itemShelfLifeDAO.updateById(fullProductData.getItemShelfLifeDO());
//        itemVideoImgDAO.updateBatchById(fullProductData.getItemVideoImgDOList());
//        skuInfoDAO.updateBatchById(fullProductData.getSkuInfoDOList());
//
//        skuBarCodeRelationDAO.updateBatchById(fullProductData.getSkuBarCodeRelationDOList());
//        cspuSkuRelationDAO.updateBatchById(fullProductData.getCspuSkuRelationDOList());
//        qualityControlDAO.updateBatchById(fullProductData.getQualityControlDOList());
//
//        attributeExtendDAO.updateById(fullProductData.getAttributeExtendDO());
//    }
//
//    public ItemInfoDO getByItemId(String itemId) {
//        LambdaQueryWrapper<ItemInfoDO> queryWrapper = Wrappers.lambdaQuery();
//        queryWrapper.eq(ItemInfoDO::getItemId, itemId);
//        return this.getOne(queryWrapper);
//    }
//}
